//
//  FileUtil.m
//  gdemm
//
//  Created by 乔明超 on 16/4/6.
//  Copyright © 2016年 Goldencis. All rights reserved.
//

#import "FileUtil.h"

@implementation FileUtil

/**
 *  判断文件是否存在
 *
 *  @param filePath 文件路径
 *
 *  @return 存在返回YES,不存在返回NO
 */
+ (BOOL)isFileExistWithFilePath:(NSString *)filePath{
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    if ([fileMgr fileExistsAtPath:filePath]) {
        return YES;
    }
    return NO;
}

/**
 *  删除文件
 *
 *  @param filePath 文件路径
 *
 *  @return 成功返回YES,失败返回NO
 */
+ (BOOL)deleteFileWithfilePath:(NSString *)filePath{
    
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    BOOL result = [fileMgr removeItemAtPath:filePath error:nil];
    return result;
}

/**
 *  从目录中获取所有的文件列表
 *
 *  @param path 目录路劲
 *
 *  @return 文件列表保存到一个数组中
 */
+ (NSArray *)getFileListFromDirectory:(NSString *)path{
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    if ([fileMgr fileExistsAtPath:path]) {
        NSArray *fileList = [fileMgr contentsOfDirectoryAtPath:path error:nil];
        return fileList;
    }
    return nil;

}

/**
 *  创建目录
 *
 *  @param local 目录路径
 *
 *  @return 创建成功返回YES,失败返回NO
 */
+ (BOOL)mkdirWithPath:(NSString *)local{
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    BOOL result = [fileMgr createDirectoryAtPath:local withIntermediateDirectories:YES attributes:nil error:nil];
    return result;
    
}

/**
 *  判断一个路径是否存在且是目录
 *
 *  @param path 路径
 *
 *  @return 
 */
+ (BOOL)isDirExistAndIsDir:(NSString *)path{
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    BOOL isDir = NO;
    BOOL isDirExist = [fileMgr fileExistsAtPath:path isDirectory:&isDir];
    return isDir && isDirExist;
}

+ (NSArray *)getSortedChilds:(NSString *)dir{

    NSFileManager *fileMgr = [NSFileManager defaultManager];
    NSArray *localListArray =  [fileMgr contentsOfDirectoryAtPath:dir error:nil];
    return localListArray;
}

/**
 *  获取文件里的内容并以字符串的形式返
 *
 *  @param filePath 文件路径
 *
 *  @return 返回的文件内容(字符串)
 */
+ (NSString *)getFileContent:(NSString *)filePath{
    if (filePath == nil) {
        return nil;
    }
    NSString *contentStr = [[NSString alloc]initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    return contentStr;
    
}

+ (NSInteger)enumFiles:(id<FileHandler>)handler dir:(NSString *)dir recursion:(BOOL)recursion{

    NSFileManager *filemgr = [NSFileManager defaultManager];
    if (![filemgr fileExistsAtPath:dir isDirectory:nil]) {
        return 1;
    }
    
    return 2;
}

/**计算文件的大小*/
+ (NSString *)getFileSize:(NSString *)filePath{
    NSFileManager *filemgr = [NSFileManager defaultManager];
    if ([filemgr fileExistsAtPath:filePath isDirectory:nil]) {
        unsigned long long size = [filemgr attributesOfItemAtPath:filePath error:nil].fileSize;
        
       unsigned long long length = size / 1024;
        if (length < 1) {
            return [NSString stringWithFormat:@"%lld字节",size];
        }
        if (length >= 1 && length < 1000) {
            return [NSString stringWithFormat:@"%lldKB",length];
        }
        length = length / 1024;
        if (length >= 1) {
            return [NSString stringWithFormat:@"%lldMB",length];
        }
    }
    
    return @"0KB";
    
}
@end
